package models

import (
	"errors"
	"fmt"
	"math"
	"strconv"
	"time"
)

// GetUserData 查找数据
func GetUserData(page string) ([]Goods, error) {
	var g []Goods

	//总条数
	var count int
	DB.Table("user").Where("delete_at is null").Scan(&count)
	fmt.Println(count)
	//每页展示多少条数据
	size := 3
	//分多少页
	pages := math.Ceil(float64(count / size))
	fmt.Println(pages)
	//当前页
	nowPage := 1
	if page != " " {
		pg, _ := strconv.Atoi(page)

		nowPage = pg
	}
	//偏移量
	offset := (nowPage - 1) * size
	res := DB.Table("user").Where("delete_at is null").Offset(offset).Limit(size).Find(&g)
	if res.Error != nil {
		fmt.Println(res.Error)
		return []Goods{}, errors.New("查询失败")
	}
	return g, nil
}

// UpdateGoodsData 更新数据
func UpdateGoodsData(name, id string) error {
	res := DB.Table("goods").Where("id=?", id).Update("name", name)
	if res.Error != nil {
		fmt.Println(res.Error)
		return errors.New("更新失败")
	}
	return nil
}

// DeleteGoods 删除某条数据
func DeleteGoods(id string) error {
	res := DB.Table("goods").Where("id=?", id).Update("delete_at", time.Now().Format(time.DateTime))
	if res.Error != nil {
		fmt.Println(res.Error)
		return errors.New("删除失败")
	}
	return nil
}

// QueryGoods 查询
func QueryGoods(id string) (Goods, error) {
	var g Goods
	res := DB.Table("goods").Where("id=?", id).First(&g)
	if res.Error != nil {
		fmt.Println(res.Error)
		return Goods{}, errors.New("查询失败")
	}
	return g, nil
}
